/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.uca.dss.curso1011.grupo3.estrategiaasientos;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.uca.dss.curso1011.grupo3.gestionreservas.Reserva;
import org.uca.dss.curso1011.grupo3.gestionreservas.Trayecto;
import org.uca.dss.curso1011.grupo3.gestionreservasextendido.GestionReservasExtendido;

/**
 *
 * @author LEVI
 */
public class EstrategiaAsientosAleatoria extends EstrategiaAsientos{

    public EstrategiaAsientosAleatoria(GestionReservasExtendido gestionReservasExtendido)
    {
        super(gestionReservasExtendido);
    }

    @Override
    public int getNumeroAsiento(Trayecto trayecto, LocalDate fecha, LocalTime horaSalida){

        List<Reserva> reservas = this.gestionReservasExtendido.listaReservasTrayecto(trayecto, fecha, horaSalida);
        List<Integer> asientosReservados = new ArrayList<Integer>();
        List<Integer> asientosNoReservados = new ArrayList<Integer>();

        for(int i = 0; i < reservas.size(); i++){
            asientosReservados.add(reservas.get(i).getnumAsiento());
        }
        for(int i = 1; i <= trayecto.getTren().getNAsientos(); i++){
            if(!asientosReservados.contains(i))
                asientosNoReservados.add(i);
        }

        int x = new Random().nextInt(asientosNoReservados.size());

        return asientosNoReservados.get(x);
    }
}
